Imports myBookmarks.Core
Namespace myBookmarks.Data
    Public Interface IBookmarkRepository

        Function GetBookmarks(ByVal userName As String, ByVal sortBy As SortBy, ByVal start As Integer, ByVal max As Integer, ByRef total As Integer) As IEnumerable(Of BookmarkList)
        Function GetBookmarksByLabel(ByVal userName As String, ByVal label As String, ByVal sortBy As SortBy, ByVal start As Integer, ByVal max As Integer, ByRef total As Integer) As IEnumerable(Of BookmarkList)
        Function GetBookmarkById(ByVal id As Integer) As Bookmark
        Function GetBookmarksByLocation(ByVal userName As String, ByVal location As String) As Bookmark
        Function SaveBookmark(ByVal bookmark As Bookmark) As Bookmark
        Function DeleteBookmark(ByVal bookmark As Bookmark) As Boolean
        Function DeleteAllBookmarks(ByVal username As String) As Boolean
        Function SearchBookmarks(ByVal userName As String, ByVal search As String, ByVal sortBy As SortBy, ByVal start As Integer, ByVal max As Integer, ByRef total As Integer) As IEnumerable(Of BookmarkList)


        Function GetLabels(ByVal userName As String) As IEnumerable(Of Label)
        Function GetLabelsWithBookmarkCount(ByVal username As String) As IEnumerable(Of KeyValuePair(Of String, Integer))
        Function RemoveLabel(ByVal id As Integer) As Boolean
        Sub SaveLabel(ByVal label As Label)


    End Interface
End Namespace
